//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef _CathCLF_h__
#define	_CathCLF_h__
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include "libraries.h"
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
class CathCLF {
  
  private:
    
    String* domain;
    
    int     classN;
    int     architectureN;
    int     topologyN;
    int     homologousSuperFamilyN;
    int     s35ClusterN;
    int     s60ClusterN;
    int     s95ClusterN;
    int     s100ClusterN;
    int     s100CountN;
    
    int     domainLength;
    double  structureResolution; //999.000 (NMR), 1000.000 Obsoletes entries
    
    String* toString;
    
  protected:
    
    void    ClearData (void);
    
  public:
    
    CathCLF ();
    CathCLF (const CathCLF&);
    CathCLF (const CathCLF*);
    
    ~CathCLF ();

    void    Domain (String*);
    
    void    ClassN (int);
    void    ArchitectureN (int);
    void    TopologyN (int);
    void    HomologousSuperFamilyN (int);
    void    S35ClusterN (int);
    void    S60ClusterN (int);
    void    S95ClusterN (int);
    void    S100ClusterN (int);
    void    S100CountN (int);
    
    void    DomainLength (int);
    void    StructureResolution (double);

    String* Domain (void);
    
    int     ClassN (void);
    int     ArchitectureN (void);
    int     TopologyN (void);
    int     HomologousSuperFamilyN (void);
    int     S35ClusterN (void);
    int     S60ClusterN (void);
    int     S95ClusterN (void);
    int     S100ClusterN (void);
    int     S100CountN (void);
    
    int     DomainLength (void);
    double  StructureResolution (void);
    
    bool    ReadData (String*);
    bool    ReadData (char*);
    
    String* ToStringCode (void);
    
    CathCLF operator= (const CathCLF&);
    
};
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//

